package com.ruoyi.security.domain;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author yeoman
 * @date 2025/11/11 16:30
 * @description 网格交易回测历史记录
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class SecurityGridTradingBacktestHistory extends SecurityGridTradingBacktestHistoryStatistics{
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 标的代码
     */
    private String symbol;

    /**
     * 回测开始日期
     */
    private Date startDate;

    /**
     * 回测结束日期
     */
    private Date endDate;

    /**
     * 初始基准价
     */
     private BigDecimal initialBenchmarkPrice;

    /**
     * 初始持仓
     */
     private Integer initialPosition;

    /**
     * 初始市值
     */
     private BigDecimal initialMarketValue;

    /**
     * 初始可用资金
     */
     private BigDecimal initialAvailableAmount;

    /**
     * 初始总资产
     */
     private BigDecimal initialTotalAssets;

    /**
     * 涨跌幅类型
     * @see com.ruoyi.security.enums.RiseFallTypeEnum
     */
    private String riseFallType;

    /**
     * 股价每上涨（按价格差：分；按百分比：%）卖出
     */
    private BigDecimal perRiseValue;

    /**
     * 股价每下跌（按价格差：分；按百分比：%）买入
     */
    private BigDecimal perFallValue;

    /**
     * 单笔买入数量
     */
     private Integer singleBuyQuantity;

     /**
     * 单笔卖出数量
     */
     private Integer singleSellQuantity;

     /**
     * 价格下限（选填）
     */
     private BigDecimal priceFloor;

     /**
     * 价格上限（选填）
     */
     private BigDecimal priceCeiling;

     /**
     * 持仓区间下限（选填）
     */
     private Integer positionFloor;

    /**
     * 持仓区间上限（选填）
     */
    private Integer positionCeiling;

     /**
     * 倍数委托开关
     */
     private Boolean multipleMandateSwitch;

    /**
     * 最大回撤开始日期
     */
    private Date maxDrawdownStartDate;

    /**
     * 最大回撤结束日期
     */
    private Date maxDrawdownEndDate;

    /**
     * 最大回撤金额
     */
    private BigDecimal maxDrawdownAmount;

    /**
     * 最大回撤率（%）- 当前投入
     */
    private BigDecimal maxDrawdownRatioByCurrentInvestment;

    /**
     * 最大回撤（%）- 最大投入
     */
    private BigDecimal maxDrawdownRatioByMaxInvestment;

    /**
     * 最大回撤率（%）- 期初总资产
     */
    private BigDecimal maxDrawdownRatioByInitialTotalAssets;

    /** 创建时间 */
    private Date createTime;

    /** 更新时间 */
    private Date updateTime;
}
